using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("JoustSpellController")]
	public class JoustSpellController : SpellController
	{
		[Attribute38("JoustSpellController.Jouster")]
		public class Jouster : MonoClass
		{
			public Player m_player => method_3<Player>("m_player");

			public Card m_card => method_3<Card>("m_card");

			public int m_deckIndex => method_2<int>("m_deckIndex");

			public Actor m_initialActor => method_3<Actor>("m_initialActor");

			public Actor m_revealedActor => method_3<Actor>("m_revealedActor");

			public int m_effectsPendingFinish => method_2<int>("m_effectsPendingFinish");

			public Jouster(IntPtr address, string className)
				: base(address, className)
			{
			}

			public Jouster(IntPtr address)
				: this(address, "Jouster")
			{
			}
		}

		public Spell m_WinnerSpellPrefab => method_3<Spell>("m_WinnerSpellPrefab");

		public Spell m_LoserSpellPrefab => method_3<Spell>("m_LoserSpellPrefab");

		public Spell m_NoJousterSpellPrefab => method_3<Spell>("m_NoJousterSpellPrefab");

		public float m_RandomSecMin => method_2<float>("m_RandomSecMin");

		public float m_RandomSecMax => method_2<float>("m_RandomSecMax");

		public string m_ShowSoundPrefab => method_4("m_ShowSoundPrefab");

		public string m_DrawStingerPrefab => method_4("m_DrawStingerPrefab");

		public float m_ShowTime => method_2<float>("m_ShowTime");

		public float m_DriftCycleTime => method_2<float>("m_DriftCycleTime");

		public float m_RevealTime => method_2<float>("m_RevealTime");

		public iTween.EaseType m_RevealEaseType => method_2<iTween.EaseType>("m_RevealEaseType");

		public float m_HoldTime => method_2<float>("m_HoldTime");

		public string m_HideSoundPrefab => method_4("m_HideSoundPrefab");

		public string m_HideStingerPrefab => method_4("m_HideStingerPrefab");

		public float m_HideTime => method_2<float>("m_HideTime");

		public string m_FriendlyBoneName => method_4("m_FriendlyBoneName");

		public string m_OpponentBoneName => method_4("m_OpponentBoneName");

		public int m_joustTaskIndex => method_2<int>("m_joustTaskIndex");

		public Jouster m_friendlyJouster => method_3<Jouster>("m_friendlyJouster");

		public Jouster m_opponentJouster => method_3<Jouster>("m_opponentJouster");

		public Jouster m_winningJouster => method_3<Jouster>("m_winningJouster");

		public Jouster m_sourceJouster => method_3<Jouster>("m_sourceJouster");

		public JoustSpellController(IntPtr address, string className)
			: base(address, className)
		{
		}

		public JoustSpellController(IntPtr address)
			: this(address, "JoustSpellController")
		{
		}

		public new bool AddPowerSourceAndTargets(PowerTaskList taskList)
		{
			return method_11<bool>("AddPowerSourceAndTargets", new object[1] { taskList });
		}

		public new void OnProcessTaskList()
		{
			method_8("OnProcessTaskList");
		}

		public void CreateJousters()
		{
			method_8("CreateJousters");
		}

		public Jouster CreateJouster(Player player, Network.HistMetaData metaData)
		{
			return method_14<Jouster>("CreateJouster", new object[2] { player, metaData });
		}

		public void DetermineWinner(Network.HistMetaData metaData)
		{
			method_8("DetermineWinner", metaData);
		}

		public void DetermineSourceJouster()
		{
			method_8("DetermineSourceJouster");
		}

		public void ShowJouster(Jouster jouster, Vector3 localScale, Quaternion rotation, Vector3 position, float delaySec, float showSec)
		{
			method_8("ShowJouster", jouster, localScale, rotation, position, delaySec, showSec);
		}

		public void PlayNoJousterSpell(Player player)
		{
			method_8("PlayNoJousterSpell", player);
		}

		public void DriftJouster(Jouster jouster)
		{
			method_8("DriftJouster", jouster);
		}

		public void RevealJouster(Jouster jouster, float revealSec)
		{
			method_8("RevealJouster", jouster, revealSec);
		}

		public void HideJouster(Jouster jouster, float delaySec, float hideSec)
		{
			method_8("HideJouster", jouster, delaySec, hideSec);
		}

		public void DestroyJousters()
		{
			method_8("DestroyJousters");
		}

		public void DestroyJouster(Jouster jouster)
		{
			method_8("DestroyJouster", jouster);
		}

		public float GetRandomSec()
		{
			return method_11<float>("GetRandomSec", Array.Empty<object>());
		}

		public bool PlaySpellOnActor(Jouster jouster, Actor actor, Spell spellPrefab)
		{
			return method_11<bool>("PlaySpellOnActor", new object[3] { jouster, actor, spellPrefab });
		}

		public bool IsJousterBusy(Jouster jouster)
		{
			return method_11<bool>("IsJousterBusy", new object[1] { jouster });
		}
	}
}
